//
//  tcsf/sof.h
//  Created by tommywang on 13-4-28.
//

#ifndef _tcsf_sof_h_
#define _tcsf_sof_h_

#include "sys/soloader.h"
#include "meta/type_list.h"
using namespace tdl;
#include "nreq.h"
#include "btypes.h"
using namespace tcsf;

namespace tcsf {
///////////////
typedef int (*tcsf_sof_init)(tcsf::access_logger_type*);
typedef int (*tcsf_sof_decode)(const char*, size_t, tcsf::access_logger_type*);
typedef int (*tcsf_sof_doreq)(tcsf::nreq_type*, tcsf::access_logger_type*);

typedef tdl::make_type_list<tcsf_sof_init, tcsf_sof_decode, tcsf_sof_doreq>::type sofl_type;

#define TCSF_SOF_ID_INIT		0
#define TCSF_SOF_ID_DECODE		1
#define TCSF_SOF_ID_DOREQ		2

#define TCSF_SOF_NAME_INIT		"tcsf_sof_init"
#define TCSF_SOF_NAME_DECODE	"tcsf_sof_decode"
#define TCSF_SOF_NAME_DOREQ		"tcsf_sof_doreq"

////////////////////
}	// namespace tcsf
#endif


